// MemoryReader.h

#pragma once

#include "Windows.h"

using namespace System;
using namespace System::Diagnostics;

namespace DarkBone {

	public ref class MemoryReader
	{
	protected:
		Process^ m_process;
		DWORD m_dwProcessID;

	public:
		MemoryReader::MemoryReader();
		MemoryReader::~MemoryReader();

		Boolean GetProcess(String^ processName, Int32% processId);
		Boolean ReadMemory(IntPtr pAddress, cli::array<Byte>^ bzBytes);
		Boolean ReadMemoryInt32(IntPtr pAddress, Int32% value);
		Boolean ReadMemoryInt16(IntPtr pAddress, Int16% value);
		Boolean ReadMemory(IntPtr pAddress, Byte% byte);
		Boolean ReadMemory(IntPtr pAddress, String^ %string);
		Boolean MemoryReader::WriteMemory(IntPtr pAddress, Byte% value);
		String^ MemoryReader::GetSC2ProcessVersion();
	};

}
